package com.demo.java.OD551_600.OD573;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【水果摊小买卖(B卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146559795
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 输入第一个数组 m
        String[] mStr = sc.nextLine().split(",");
        int[] m = new int[mStr.length];
        for (int i = 0; i < mStr.length; i++) {
            m[i] = Integer.parseInt(mStr[i]);
        }

        // 输入第二个数组 n
        String[] nStr = sc.nextLine().split(",");
        int[] n = new int[nStr.length];
        for (int i = 0; i < nStr.length; i++) {
            n[i] = Integer.parseInt(nStr[i]);
        }

        // 输入本钱 k
        int k = Integer.parseInt(sc.nextLine());

        // 动态规划数组 dp，dp[i] 表示用 i 本钱可以获得的最大利润
        int[] dp = new int[k + 1];

        // 动态规划求解最大利润
        for (int i = 0; i < m.length; i++) {
            for (int j = k; j >= m[i]; j--) {
                dp[j] = Math.max(dp[j], dp[j - m[i]] + (n[i] - m[i]));
            }
        }

        // 输出最大利润
        System.out.println(dp[k]);
    }
}